package com.say.utils;

import java.io.InputStream;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;

import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;


/**
 * 消息处理工具类
 */
public class MessageHandlerUtil {
	private static Logger logger = LoggerFactory.getLogger(MessageHandlerUtil.class);
	/**
	 * 解析微信发来的请求（XML）
	 * @param request
	 * @return map
	 * @throws Exception
	 */
	@SuppressWarnings({ "unchecked", "rawtypes" })
	public static Map<String,String> parseXml(HttpServletRequest request) throws Exception {
		// 将解析结果存储在HashMap中
		Map<String,String> map = new HashMap();
		// 从request中取得输入流
		InputStream inputStream = request.getInputStream();
		// 读取输入流
		SAXReader reader = new SAXReader();
		Document document = reader.read(inputStream);
		// 得到xml根元素
		Element root = document.getRootElement();
		// 得到根元素的所有子节点
		List<Element> elementList = root.elements();

		// 遍历所有子节点
		for (Element e : elementList) {
			map.put(e.getName(), e.getText());
		}

		// 释放资源
		inputStream.close();
		inputStream = null;
		return map;

	}
	/**
	 * 根据消息类型 构造返回消息
	 * */
	public static String buildXml( Map<String,String> map)throws Exception {
		// xml格式的消息数据
		String respXml = null;
		try {
			// 发送方帐号
			String fromUserName = map.get("FromUserName").toString();
			logger.info("发送方帐号_____fromUserName_______)"+fromUserName);
			// 开发者微信号
			String toUserName = map.get("ToUserName").toString();
			// 消息类型
			String msgType = map.get("MsgType").toString();

			

		} catch (Exception e) {
			e.printStackTrace();
		}

		return respXml;
	}
}

